package control;
import java.io.Serializable;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import model.AcessoUsuario;
import business.AcessoUsuarioDAO;
@ManagedBean(name="acessoUsuarioHandler")
@SessionScoped

public class AcessoUsuarioHandler implements Serializable {
	private static final long serialVersionUID = 1L;
	private AcessoUsuarioDAO acessoUsuarioDAO = AcessoUsuarioDAO.getInstance();
	private AcessoUsuario acessoUsuario;
	
	public AcessoUsuarioDAO getUsuarioDAO() {
		return acessoUsuarioDAO;
	}

	public void setUsuarioDAO(AcessoUsuarioDAO pacienteDAO) {
		this.acessoUsuarioDAO = pacienteDAO;
	}

	public AcessoUsuario getUsuario() {
		return this.acessoUsuario;
	}
	
	public void setUsuario(AcessoUsuario acessoUsuario) {
		this.acessoUsuario = acessoUsuario;
	}
	
	public String validar()	{
		FacesContext context = FacesContext.getCurrentInstance();
		String login = this.acessoUsuario.getLogin();
		String senha = this.acessoUsuario.getSenha();
		
		this.acessoUsuario = this.acessoUsuarioDAO.get(login);
		if (this.acessoUsuario == null) {
			context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Usuário Não Cadastrado",""));
			return "inicio";
			
		} else if(this.acessoUsuario.getSenha().equals(senha) ) {
			setPermissaoUsuario();
			return "inicio";
		} else {
			context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Senha confirmada incorretamente",""));
			return "login";
		}
	}
	
	public String telaLogin() {
		this.acessoUsuario = new AcessoUsuario();
		return "login";
	}
	
	public String logout() {
		this.acessoUsuario = null;
		setPermissaoUsuario();
		return "inicio";
	}
	
	private void setPermissaoUsuario() {
		AcessoUsuarioPermissaoHandler backBean = (AcessoUsuarioPermissaoHandler) FacesContext.getCurrentInstance()
		.getExternalContext().getSessionMap().get("acessoUsuarioPermissaoHandler");
		backBean.setUsuario(this.acessoUsuario);
	}
}
